草庐IT

mongodb - 对 NoSQL 设计的困惑

全部标签

javascript - 将我的函数式 JavaScript 代码转换为面向对象的设计是否值得?

我目前正在构建一个包含大量JavaScript的小型Web应用程序。当我对最初的想法进行原型(prototype)设计时,我只是拼凑了一些函数来演示应用程序最终的行为方式,打算继续以面向对象的方式重写JavaScript。现在我进入了实现阶段,我发现为了面向对象而创建面向对象的JavaScript似乎有点过头了——该项目不太可能在未来需要任何重大修改将保证和面向对象的设计。相反,我发现一组简洁、内聚的函数运行良好。因此,话虽如此,并试图坚持KISS原则,当一组函数为问题提供合适的解决方案时,是否还有其他值得考虑的理由将我的代码转换为面向对象的设计? 最佳答案

JavaScript Array、Stack、Queue——这种特定 API 设计背后的动机是什么?

在我的日常工作中,我主要使用C#,偶尔使用javascript,所以请javascript大师不要粗暴地判断我的问题!Array通过提供push和pop方法实现Stack,但是peek不见了,为什么?(是的,实现起来很简单,但仍然)Array实现了Queue,但是操作被命名为push-shift或unshift-pop而不是enqueue和dequeue,为什么命名不同?这是受Python和Ruby启发的吗?为什么将Array、Stack和Queue的API合并到一个对象中,而不是分离接口(interface)并为其创建不同的对象?是因为实现便宜吗?从语义上讲,在许多语言(C#、C++

javascript - 如何设计一个监听 WebSocket 并与 CSS 动画交互的 ReactJS 组件

ReactJS组件需要监听WebSocket发出的事件。对于每个入站事件,组件应该呈现一个DOM节点。然后它应该等待与DOM节点关联的CSS动画完成,然后删除DOM节点。这是我打算实现的草图。这种方法看起来可行吗?setTimeout感觉很糟糕。classMyComponentextendsReact.PureComponent{componentDidMount(){this.props.webSocket.on('myEvent',componentDidReceiveEvent)}componentWillUnmount(){this.props.webSocket.off('m

javascript - 如何创建一个可模拟的类来连接到 mongoDB?

我已经尝试创建一个类来连接到mongoDB(并使用(gridfs-stream)获得gridFS连接)。但是我确实遇到了两个问题:我有时会收到mongo错误serverinstanceininvalidstateconnected我不可能模拟这个类-使用jestJS所以如果有人可以帮助我优化这个类以获得一个真正扎实的工作类,我将非常感激。例如,我不喜欢connect()函数中的letthat=this。Examplerepo数据库类constmongo=require('mongodb')constGrid=require('gridfs-stream')const{promisify

javascript - Redux 中间件设计 re : return values

所以我刚刚阅读了redux中间件,听起来不错。不过有一件事困扰着我——中间件的返回值。我知道中间件的某些实例会返回一些东西(即redux-promise),而我得到其他中间件(即logging)不会-只是返回next(action)的结果。我的问题是,如果我想使用两个都返回内容的中间件会发生什么——它们肯定会互相破坏,而我只会获得最外层中间件的返回值。express/connect中间件通过让中间件将其“结果”写入req和res对象来解决这个问题,但是解决方案是什么还原?编辑这是我的问题的一个更具体的例子:我有两个中间件:将所有操作延迟3秒分派(dispatch)的中间件。这个中间件返

javascript - 我将如何设计客户端队列系统?

概览我正在做一个项目,我遇到了一些问题,因为事情没有按照我希望的顺序发生。所以我一直在考虑设计某种队列,我可以用它来组织函数调用和在启动期间使用的其他杂项JavaScript/jQuery指令,即在加载页面时。我正在寻找的不一定是队列数据结构,而是一些系统可以确保事情按照我指定的顺序执行,并且只有当前一个任务完成时新任务才能开始。我简要地查看了jQueryQueue和AjaxQueue但我真的不知道它们是如何工作的,所以我不确定这是否是我想要采用的方法……但我会继续阅读有关这些工具的更多信息。具体内容目前,我已经设置好一些工作在$(document).ready(function(){

JavaScript 内存泄漏 (Node.js/Restify/MongoDB)

更新4:通过在函数外部实例化restify客户端(参见controllers/messages.js)并在每次请求后调用global.gc(),内存增长率似乎已降低很多(每10秒约500KB)。然而,内存使用量仍在不断增长。更新3:遇到这篇文章:https://journal.paul.querna.org/articles/2011/04/05/openssl-memory-use/可能值得注意的是,我将HTTPS与Restify结合使用。更新2:将下面的代码更新为当前状态。我试过用Express替换Restify。遗憾的是,这没有任何区别。似乎链末端的api调用(restify->

Javascript 插件设计模式,如 jQuery

有人可以用javascript写下一个非常简单的基本示例来概念化(并希望让我理解)jQuery插件设计模式是如何完成的以及它是如何工作的吗?我对如何为jQuery创建插件不感兴趣(所以这里根本没有jQuery代码)。我感兴趣的是一个简单的解释(可能有一些Javascript代码)来解释插件概念是如何完成的。请不要回复我去阅读jQuery代码,我试过了,但是它太复杂了,否则我不会在这里发布问题。谢谢! 最佳答案 jQuery有一个函数库,存储在一个名为fn的内部对象中。.这些是您可以在每个jQuery对象上调用的对象。当你做$("di

javascript - XHR 流媒体通过设计关闭连接?

我正在阅读这篇文章:http://blog.pusher.com/what-came-before-websockets/,下面的文字引起了我的注意:XHRStreamingworkedinallbrowserstheresponseTextoftheXMLHttpRequestobjectwouldcontinuetogrowuntiltheconnectionwasclosedmeaningareconnectionhadtoeventuallybeforcedtoclearthisbuffer.如果我理解正确,这是否意味着只要缓冲区达到一定大小(顺便说一句,这里的实际大小是多少?

javascript - 令人困惑的谷歌闭包库api

有人可以向我解释闭包如何以更用户友好的形式工作吗?它的帮助和文档真的让我无处可去。您如何执行简单的任务,例如选择和修改dom(例如,选择页面上的所有内容并隐藏它们)? 最佳答案 参见http://derekslager.com/blog/posts/2010/06/google-closure-introduction.ashx,比较#4,隐藏所有div:goog.require('goog.dom.query');goog.require('goog.style');functionHideElement(selector){go